package com.zhijian.medical.dao.local;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.pagehelper.Page;
import com.zhijian.medical.entity.po.RoutinePatient;
import com.zhijian.medical.entity.po.RoutinePatientDiagnose;
import com.zhijian.medical.entity.vo.request.RoutinePatientSearchVo;
import com.zhijian.medical.entity.vo.response.RoutinePatientDiagnoseVo;
import com.zhijian.medical.entity.vo.response.RoutinePatientVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoutinePatientDiagnoseMapper extends BaseMapper<RoutinePatientDiagnose> {

    /**
     * 查询病人的诊断数据
     * @param searchVo 查询条件
     * @return 诊断列表
     */
    Page<RoutinePatientVo> selectPage(RoutinePatientSearchVo searchVo);

    Integer selectCount(RoutinePatientSearchVo searchVo);

    /**
     * 根据病理号查询诊断详情
     * @param blh 病理号
     * @return 诊断详情
     */
    RoutinePatientDiagnoseVo selectOneByBlh(@Param("blh") String blh);

    /**
     * 根据病人Id查询数据
     * @param patientId 病人ID
     * @return
     */
    RoutinePatientDiagnoseVo selectOneByPatientId(@Param("patientId") Long patientId);

    /**
     * 根据病理号查询诊断详情
     * @param id 诊断报告Id
     * @return 诊断详情
     */
    RoutinePatientDiagnoseVo selectOneById(@Param("diagnoseId") Long id);

    /**
     * 根据Id查询诊断详情
     * @param idList
     * @return
     */
    List<RoutinePatientDiagnoseVo> selectOneByIdList(@Param("diagnoseIdList") List<Long> idList);

    /**
     * 查询病人的诊断数据
     * @param searchVo 查询条件
     * @return 诊断列表
     */
    Page<RoutinePatientVo> selectLatestPage(RoutinePatientSearchVo searchVo);

    /**
     * 收藏数量
     * @param searchVo 查询条件
     * @return 收藏的数量
     */
    Integer collectCount(RoutinePatientSearchVo searchVo);

    /**
     * 未审核数量
     * @param searchVo 查询条件
     * @return 收藏的数量
     */
    Integer auditDoingCount(RoutinePatientSearchVo searchVo);
}
